﻿<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Guion.aspx.cs" MasterPageFile="MasterPage.Master" Inherits="Web.Pages._Guion" %>
<%@ Register Src="~/CustomControls/UserGrid.ascx" TagPrefix="uc1" TagName="UserGrid" %>

<asp:Content ID="mainContent" ContentPlaceHolderID="MainContent" runat="Server" >

    <!-- Estilos -->
    <style type="text/css" >
        .txtGuion_Titulo
        {
            float: left;
            width: 100%;
            
            padding-top: 20px;
            padding-bottom: 20px;
            
            text-align: center;
            
            
            font-size: 30px;    
            /*border: 1px solid #2293f7;*/
            border: 1px solid transparent;
            
            font-weight: bold;
            /*color: #ffffff;*/
            color: #3f3b36;
            border: 1px solid gainsboro;

            /*background-color: #e69700;*/
        }
        .txtGuion_Episodio
        {
            float: left;            
            
            padding-top: 20px;
            padding-bottom: 20px;
            
            text-align: center;
            
            font-size: 30px;    
            /*border: 1px solid #2293f7;*/
            border: 1px solid transparent;
            
            font-weight: bold;
            /*color: #ffffff;*/
            color: #3f3b36;
            border: 1px solid gainsboro;

            /*background-color: #e69700;*/
        }
        .filaPersonaje
        {
        }
        .filaPersonaje:hover
        {
            /*border: 2px dashed #000000;*/
        }
        #tblPersonajes td
        {
            padding: 4px;
        }
        .seccion
        {
            float: left;
            width: 100%;

            line-height: 30px;

            text-align: center;
            font-size: 16px;
            text-shadow: 1px 1px 1px #000000;
            font-weight: normal;
            
            margin-top: 5px;
            /*margin-bottom: 5px;*/
            padding-top: 5px;
            padding-bottom: 5px;
            padding-left: 5px;
            padding-right: 5px;
            
            color: #fff;

            border: 1px solid #66add6;

            -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .5);
            -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .5);
            box-shadow: 0 1px 2px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .5);
            background-color: #acd6ef;
            background-image: -webkit-gradient(linear, left top, left bottom, from(#acd6ef), to(#6ec2e8));
            background-image: -moz-linear-gradient(top left 90deg, #acd6ef 0%, #6ec2e8 100%);
            background-image: linear-gradient(top left 90deg, #acd6ef 0%, #6ec2e8 100%);       
        }
        .seccionContenido
        {
            float: left;
            width: 100%;
            border: 1px solid #66add6;
            margin-top: -1px;
            padding-left: 10px;
        }
    </style>
    <!-- Fin de [Estilos] -->

    <!--$(document).ready-->  
    <script type="text/javascript" >

        var _idProyecto = Constants.Entities.DefaultId;
        var _idGuion    = Constants.Entities.DefaultId;

        var _cantRegistrosPersonajesCreados = 0;
        var _cantRegistrosPersonajes = 0;
        var _cantLoopsPersonajes = 0;

        var modoEdicion = { Creacion: false, Edicion: false };

        var clsCollapsibleSection   = "seccion";
        var clsCollapsibleContent   = "seccionContenido";

        var controles =
        {
            General: {},
            Guion:
            {
                Comentarios: {}
            },
            Costos: {},
            Importacion: {},
            Items:
            {
                Tabla: {},
                Fila: {},
                Columnas: {}
            },
            Autorizaciones:
            {
                Tabla: {},
                Fila: {},
                Columnas: {},
                Dialogs:
                    {
                        Resolucion: {},
                        Detalle: {}
                    }
            }
        };
        
        /* General */
        controles.General.MensajeError              = "pnlGuion_ErrorMessage";
        controles.General.btnLiberar                = "btnLiberar";
        controles.General.btnGuardar                = "btnGuardar";
        controles.General.btnEliminar               = "btnEliminar";
        controles.General.btnActualizarCostoMaestro = "btnActualizarCostoMaestro";        
        controles.General.UsuarioActor              = "<%= selGuion_UsuarioActor.ClientID %>";
        controles.General.TipoCancion               = "<%= selGuion_TipoCancion.ClientID %>";
        
        /* Guion */
        controles.Guion.TipoProyecto        = "<%= selGuion_TipoProyecto.ClientID %>";
        controles.Guion.Proyecto            = "<%= selGuion_Proyecto.ClientID %>";
        controles.Guion.Estado              = "<%= selGuion_Estado.ClientID %>";
        controles.Guion.Director            = "<%= selGuion_Director.ClientID %>";
        controles.Guion.Traductor           = "<%= selGuion_Traductor.ClientID %>";
        controles.Guion.Adaptador           = "<%= selGuion_Adaptador.ClientID %>";
        controles.Guion.Mezclador           = "<%= selGuion_Mezclador.ClientID %>";
        controles.Guion.Temporizador        = "<%= selGuion_Temporizador.ClientID %>";
        controles.Guion.Duracion            = "<%= txtGuion_Duracion.ClientID %>";
        controles.Guion.Paginas             = "<%= txtGuion_Paginas.ClientID %>";
        controles.Guion.Loops               = "<%= txtGuion_Loops.ClientID %>";
        controles.Guion.Personajes          = "<%= txtGuion_Personajes.ClientID %>";
        controles.Guion.Titulo              = "<%= txtGuion_Titulo.ClientID %>";
        controles.Guion.Episodio            = "<%= txtGuion_Episodio.ClientID %>";
        
        /* Comentarios */
        controles.Guion.Comentarios.Panel   = "pnlComentarios";
        controles.Guion.Comentarios.Text    = "<%= txtGuion_Comentarios.ClientID %>";
        
        /* Items */
        controles.Items.btnAgregarPersonaje     = "btnAgregarPersonaje";
        controles.Items.Panel                   = "pnlPersonajes";
        controles.Items.Tabla.Id                = "tblPersonajes";
        controles.Items.Fila.Id                 = "filaPersonaje_";
        controles.Items.Fila.IdGuionItem        = "idGuionItem";
        controles.Items.Columnas.btnEliminar    = "btnGuion_Item_Eliminar_";
        controles.Items.Columnas.Subtitulado    = "chkGuion_Item_Subtitulado_";
        controles.Items.Columnas.Personaje      = "txtGuion_Item_Nombre_";
        controles.Items.Columnas.Actor          = "selGuion_Item_Actor_";
        controles.Items.Columnas.FechaGrabacion = "txtGuion_Item_Llamado_";
        controles.Items.Columnas.Loops          = "txtGuion_Item_Loops_";
        controles.Items.Columnas.TipoCancion    = "selGuion_Item_TipoCancion_";
        
        /* Costos */
        controles.Costos.Panel          = "pnlCostos";
        controles.Costos.Tabla          = "tblCostos";
        controles.Costos.Titulo         = "lblCostosTitulo";    
        controles.Costos.Loops          = "<%= txtGuion_Costos_Loops.ClientID %>";
        controles.Costos.Direccion      = "<%= txtGuion_Costos_Direccion.ClientID %>";
        controles.Costos.LoopMinimo     = "<%= txtGuion_Costos_LoopMinimo.ClientID %>";
        controles.Costos.Traduccion     = "<%= txtGuion_Costos_Traduccion.ClientID %>";
        controles.Costos.Cancion        = "<%= txtGuion_Costos_Cancion.ClientID %>";
        controles.Costos.Adaptacion     = "<%= txtGuion_Costos_Adaptacion.ClientID %>";
        controles.Costos.Coro           = "<%= txtGuion_Costos_Coro.ClientID %>";
        controles.Costos.Mezcla         = "<%= txtGuion_Costos_Mezcla.ClientID %>";
        controles.Costos.Temporizacion  = "<%= txtGuion_Costos_Temporizacion.ClientID %>";
        controles.Costos.Palabras       = "<%= txtGuion_Costos_Palabras.ClientID %>";

        /* Importacion */
        controles.Importacion.Panel         = "pnlImportacion";
        controles.Importacion.Dialog        = "dialogPdfViewer";
        controles.Importacion.Tabla         = "tblImportacion";
        controles.Importacion.btnDescargar  = "<%= lnkDescargarArchivos.ClientID %>";
        controles.Importacion.DOC           = "<%= txtGuion_Importacion_DOC.ClientID %>";
        controles.Importacion.BRK           = "<%= txtGuion_Importacion_BRK.ClientID %>";
        controles.Importacion.STR           = "<%= txtGuion_Importacion_STR.ClientID %>";
        controles.Importacion.Fecha         = "<%= txtGuion_Importacion_Fecha.ClientID %>";
        controles.Importacion.Usuario       = "<%= txtGuion_Importacion_Usuario.ClientID %>";
        controles.Importacion.Directorio    = "<%= hdnGuion_Importacion_Directorio.ClientID %>";

        /* Autorizaciones */
        controles.Autorizaciones.Columnas.btnResolver   = "btnGuion_Autorizacion_Resolver_";
        controles.Autorizaciones.Columnas.btnVerDetalle = "btnGuion_Autorizacion_VerDetalle_";
        controles.Autorizaciones.Tabla.Id               = "tblAutorizaciones";
        controles.Autorizaciones.Fila.Id                = "transicionAutorizacion_";
        //controles.Autorizaciones.Fila.IdGuionItem        = "idGuionItem";
        controles.Autorizaciones.Dialogs.Resolucion.Id              = "dialogAutorizaciones";
        controles.Autorizaciones.Dialogs.Resolucion.IdTransicion    = "txtDialogAutorizaciones_IdTransicionAutorizacion";
        controles.Autorizaciones.Dialogs.Resolucion.Title           = "Resolver Autorización";
        controles.Autorizaciones.Dialogs.Resolucion.Width           = 800;
        controles.Autorizaciones.Dialogs.Resolucion.Height          = 300;
        controles.Autorizaciones.Dialogs.Resolucion.Estado          = "<% = selDialogAutorizaciones_Estado.ClientID %>";
        controles.Autorizaciones.Dialogs.Resolucion.Comentarios     = "txtDialogAutorizaciones_Comentarios";
        controles.Autorizaciones.Dialogs.Resolucion.Usuario         = "selDialogAutorizaciones_Usuario";
        controles.Autorizaciones.Dialogs.Resolucion.PanelUsuario    = "pnlDialogAutorizaciones_Usuario";
        controles.Autorizaciones.Dialogs.Resolucion.btnResolver     = "btnDialogAutorizaciones_Resolver";

        controles.Autorizaciones.Dialogs.Detalle.Id                 = "dialogDetalleAutorizacion";
        controles.Autorizaciones.Dialogs.Detalle.Title              = "Detalle Autorización";
        controles.Autorizaciones.Dialogs.Detalle.Width              = 500;
        controles.Autorizaciones.Dialogs.Detalle.Height             = 200;
        controles.Autorizaciones.Dialogs.Detalle.Estado             = "lblDialogDetalleAutorizacion_Estado";
        controles.Autorizaciones.Dialogs.Detalle.Inicio             = "lblDialogDetalleAutorizacion_Inicio";
        controles.Autorizaciones.Dialogs.Detalle.Fin                = "lblDialogDetalleAutorizacion_Fin";
        controles.Autorizaciones.Dialogs.Detalle.Comentarios        = "txtDialogDetalleAutorizacion_Comentarios";

        var registroInactivo = "<%= _registroInactivo %>".toLowerCase() == "true" ? true : false;

        var userGridId = "<%= UserGrid.ClientID %>";

        $(document).ready(function()
        {
            procesarParametros();
            cargarPagina_Guion();

            var dialogOptions =
            {
                closeOnEscape: true,
                modal: true,
                title:  "Transición de Estados",
                width:  400,
                height: 400
            };
            Helpers.DialogHelper.initializeDialog( "dialogTest", dialogOptions );
            //Helpers.DialogHelper.openDialog( "dialogTest" );
        });
        function procesarParametros()
        {
            //_params = getQueryStringParameters();
            //if ( !isEmpty(_params.idProyecto) )
            //    _idProyecto = parseInt(_params.idProyecto);
            //if ( !isEmpty(_params.id) )
            //    _idGuion = parseInt(_params.id);
            _idProyecto = parseInt("<%= _idProyecto %>") || Constants.Entities.DefaultId;
            _idGuion    = parseInt("<%= _idGuion %>") || Constants.Entities.DefaultId;
        }

        function obtenerEstadoActual()
        {
            return Helpers.SelectListHelper.getSelectedValueFromSelectList(controles.Guion.Estado);
        }
        function cargarPagina_Guion()
        {
            //Site.Messages.showLoadingMessage();

            if (obtenerEstadoActual() == _EstadosGuion.FINALIZADO.Id && validarTipoUsuario(_CurrentUser.Tipo, _TiposUsuario.Administrador))
            {
                var btnLiberar = $("#" + controles.General.btnLiberar);
                btnLiberar.fadeIn().click(function() { habilitarControles(true); $(this).remove(); });
            }

            Collapsible().Create(controles.Items.Panel, "Personajes del Guión", clsCollapsibleSection, clsCollapsibleContent, false);
            Collapsible().Create(controles.Costos.Panel, "Costos del Guión", clsCollapsibleSection, clsCollapsibleContent, false);
            Collapsible().Create(controles.Guion.Comentarios.Panel, "Comentarios adicionales del Guión", clsCollapsibleSection, clsCollapsibleContent, false);
            Collapsible().Create(controles.Importacion.Panel, "Importación del Guión", clsCollapsibleSection, clsCollapsibleContent, false);

            allowOnlyNumbers
            (
                $("#{0}, #{1}, #{2}, #{3}, #{4}".format
                    (
                        controles.Guion.Episodio,
                        controles.Guion.Duracion,
                        controles.Guion.Paginas,
                        controles.Guion.Loops,
                        controles.Guion.Personajes
                    )
                )
            );

            var keys = getObjectKeys(controles.Costos);
            for (var i = 0; i < keys.length; i++)
            {
                allowOnlyNumbers( $("#" + controles.Costos[keys[i]]), true);
            }

            var pnlPersonajes = $("#"+ controles.Items.Panel);
            var pnlCostos = $("#" + controles.Costos.Panel);
            var pnlComentarios = $("#"+ controles.Guion.Comentarios.Panel);
            var pnlImportacion = $("#" + controles.Importacion.Panel);

            pnlPersonajes.hide();
            pnlCostos.hide();
            pnlComentarios.hide();
            pnlImportacion.hide();

            configurarPagina();

            habilitarControles(false);
            habilitarControlesSegunTipoUsuario(_CurrentUser);

            if ($("#" + controles.Importacion.Fecha).html().length == 0)
                $("#" + controles.Importacion.Panel).hide();

            _cantRegistrosPersonajesCreados = $("#" + controles.Items.Tabla.Id + " tr").length;

            Site.Messages.hideLoadingMessage();

            if (registroInactivo == true)
                mostrarMensajeContenidoBloqueado(habilitarGuion);
        }
        function configurarPagina()
        {
            Helpers.MultiSelectHelper.configure("#{0}, #{1}, #{2}".format(controles.Guion.TipoProyecto, controles.Guion.Proyecto, controles.Guion.Estado), false);
            Helpers.MultiSelectHelper.configure("#{0}, #{1}, #{2}, #{3}, #{4}".format(controles.Guion.Director, controles.Guion.Traductor, controles.Guion.Adaptador, controles.Guion.Mezclador, controles.Guion.Temporizador), false, true );
            Helpers.MultiSelectHelper.configure("#{0}, #{1}".format(controles.General.UsuarioActor, controles.General.TipoCancion), false, true);

            Helpers.MultiSelectHelper.setWidth("#{0}, #{1}, #{2}, #{3}, #{4}".format(controles.Guion.Director, controles.Guion.Traductor, controles.Guion.Adaptador, controles.Guion.Mezclador, controles.Guion.Temporizador), 300);
            Helpers.MultiSelectHelper.setWidth("#{0}".format(controles.Guion.Estado), 200);
            Helpers.MultiSelectHelper.setWidth("#{0}".format(controles.Guion.TipoProyecto), 180);
            Helpers.MultiSelectHelper.setWidth("#{0}".format(controles.Guion.Proyecto), 340);

            Helpers.MultiSelectHelper.bindOnChange("#" + controles.Guion.TipoProyecto, onTipoProyecto_Change);
            Helpers.MultiSelectHelper.bindOnChange("#" + controles.Guion.Proyecto, onProyecto_Change);

            if ( _idProyecto != Constants.Entities.DefaultId )
                modoEdicion.Creacion = true;

            if ( _idGuion != Constants.Entities.DefaultId )
                modoEdicion.Edicion = true;
                
            if ( modoEdicion.Creacion )
                configurarPagina_Creacion();
            
            if ( modoEdicion.Edicion )
                configurarPagina_Edicion();

            var idTipoProyecto = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.TipoProyecto);
            configurarPagina_SegunTipoProyecto(idTipoProyecto);

            initializePdfViewer();
            $("#" + controles.Importacion.BRK).click(function() { openPdfViewer($(this).val(), "Documento BREAK"); });
            $("#" + controles.Importacion.STR).click(function() { openPdfViewer($(this).val(), "Documento RAYADO"); });

            inicializarDialogAutorizacionResolucion();
            inicializarDialogAutorizacionDetalle();

            Site.Page.setTitle( (modoEdicion.Creacion ? "Alta de nuevo " : "Edición de ") + "Guión");
        }
        function configurarPagina_Creacion()
        {
            Helpers.MultiSelectHelper.setSelected(controles.Guion.Proyecto, [ _idProyecto ], true);
            onProyecto_Change(true, _idProyecto, Helpers.MultiSelectHelper.getFirstSelectedText(controles.Guion.Proyecto));

            //Helpers.MultiSelectHelper.setSelected(controles.Guion.Estado, [ _EstadosGuion.EN_GRABACION.Id ], true);            
        }
        function configurarPagina_Edicion()
        {
            procesarFilasPersonajes();
            habilitarControl("#" + controles.Guion.TipoProyecto, false);
        }
        function configurarPagina_SegunTipoProyecto(idTipoProyecto)
        {
            //var tbl = $("#{0}".format(controles.Items.Tabla.Id));
            //var colgroup = tbl.find("colgroup");
            //    colgroup.empty();
            //var colGroupSeries =
            //        '<colgroup>' +
            //        '<col width="10%" /> <!-- ELIMINAR -->' +
            //        '<col width="5%" />  <!-- SUBTITULADO -->' +
            //        '<col width="30%" /> <!-- PERSONAJE -->' +
            //        '<col width="25%" /> <!-- ACTOR -->' +
            //        '<col width="10%" /> <!-- LLAMADO -->' +
            //        '<col width="10%" /> <!-- LOOPS -->' +
            //        '<col width="10%" /> <!-- CANCION -->' +
            //        '</colgroup>';
            //var colGroupVideojuegos =
            //        '<colgroup>' +
            //        '<col width="10%" /> <!-- ELIMINAR -->' +
            //        '<col width="35%" /> <!-- PERSONAJE -->' +
            //        '<col width="25%" /> <!-- ACTOR -->' +
            //        '<col width="10%" /> <!-- LLAMADO -->' +
            //        '<col width="10%" /> <!-- LOOPS -->' +
            //        '<col width="10%" /> <!-- CANCION -->' +
            //        '</colgroup>';
            switch( idTipoProyecto )
            {
            case _TiposProyecto.SERIE.Id:
                //colgroup.html( colGroupSeries );
                configurarPagina_Serie();
                break;
            case _TiposProyecto.VIDEOJUEGO.Id:
                //colgroup.html( colGroupVideojuegos );
                configurarPagina_Videojuego();
                break;
            }            
        }
        function configurarPagina_Serie()
        {
            habilitarControl("#" + controles.Guion.Temporizador, true);
            mostrarColumnaSubtitulado(true);
            addPlaceHolder(controles.Guion.Titulo, "<< TÍTULO >>");
            addPlaceHolder(controles.Guion.Episodio, "<< # EPISODIO >>");
            $("#" + controles.Costos.Titulo).html("DOBLAJE");
        }
        function configurarPagina_Videojuego()
        {
            Helpers.MultiSelectHelper.clearSelection(controles.Guion.Temporizador);
            habilitarControl("#" + controles.Guion.Temporizador, false);
            mostrarColumnaSubtitulado(false);
            addPlaceHolder(controles.Guion.Titulo, "<< TÍTULO >>");
            addPlaceHolder(controles.Guion.Episodio, "<< # BATCH >>");
            $("#" + controles.Costos.Titulo).html("VIDEOJUEGOS");
        }        
        function procesarFilasPersonajes()
        {
            var filas = obtenerFilasPersonajes();
            for (var id = 0; id < filas.length; id++)
            {
                activarFilaPersonaje(id);

                var actorId = $("#hdnGuion_Item_Actor_Id_" + id).val();
                if (actorId != Constants.Entities.DefaultId)
                    Helpers.MultiSelectHelper.setSelected(controles.Items.Columnas.Actor + id, [actorId], true);

                var tipoCancionId = $("#hdnGuion_Item_TipoCancion_Id_" + id).val();
                if (tipoCancionId != Constants.Entities.DefaultId)
                    Helpers.MultiSelectHelper.setSelected(controles.Items.Columnas.TipoCancion + id, [tipoCancionId], true);
            }
        }
        function marcarPersonajeSubtitulado(id)
        {
            var chkSubtitulado = $("#" + controles.Items.Columnas.Subtitulado + id);
            if (chkSubtitulado.val().toLowerCase() == "true")
            {
                chkSubtitulado.prop("checked", true);
                habilitarFilaPersonaje( id, false );
            }
        }
        function mostrarColumnaSubtitulado(mostrar)
        {
            toggleTableColumn( mostrar, controles.Items.Tabla.Id, 1 );
        }
        function habilitarControlesSegunTipoUsuario(usuario)
        {
            var pnlPersonajes = $("#"+ controles.Items.Panel);
            var pnlCostos = $("#" + controles.Costos.Panel);
            var pnlComentarios = $("#"+ controles.Guion.Comentarios.Panel);
            var pnlImportacion = $("#" + controles.Importacion.Panel);

            var tipoUsuario = usuario.Tipo;

            if ( validarPermisosAdmin(tipoUsuario) )
            {
                pnlPersonajes.show();
                pnlCostos.show();
                pnlComentarios.show();
                pnlImportacion.show();

                habilitarControles(true);

                var actualizaCostos = validarTipoUsuario(tipoUsuario, _TiposUsuario.Administrador);
                habilitarControles_Costos(actualizaCostos);
            }

            if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Director) || validarTipoUsuario(tipoUsuario, _TiposUsuario.Operador) )
            {
                pnlPersonajes.show();
                pnlCostos.hide();
                pnlComentarios.show();
                pnlImportacion.show();

                /* General */
                enableButton(controles.General.btnGuardar, true, guardarGuion);
                enableButton(controles.General.btnEliminar, true, eliminarDatos);

                /* Guion */
                habilitarControl("#" + controles.Guion.Estado, true);
                habilitarControl("#" + controles.Guion.Comentarios.Text, true);

                /* Personajes */
                habilitarControles_Items(true);

                /* Importacion */
                habilitarControles_Importacion(true);

                /* Autorizaciones */
                habilitarControles_Autorizaciones(true);
            }

            if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Adaptador ) )
            {
                pnlPersonajes.show();
                pnlCostos.hide();
                pnlComentarios.show();
                pnlImportacion.hide();
            }
            if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Editor ) )
            {
                pnlPersonajes.show();
                pnlCostos.hide();
                pnlComentarios.show();
                pnlImportacion.hide();
            }
            if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Mezclador ) )
            {
                pnlPersonajes.show();
                pnlCostos.hide();
                pnlComentarios.show();
                pnlImportacion.hide();
            }
            if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Traductor ) )
            {
                pnlPersonajes.show();
                pnlCostos.hide();
                pnlComentarios.show();
                pnlImportacion.hide();

                var autorizaciones = obtenerFilasAutorizaciones().length;
                if (autorizaciones > 0)
                {
                    var idTraductor = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Traductor);
                    if (usuario.Id == idTraductor)
                    {
                        pnlImportacion.show();
                        habilitarControles_Importacion(true);
                        habilitarControles_Autorizaciones(true);
                        enableButton(controles.General.btnEliminar, true, eliminarDatos);
                    }
                }
            }
            if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Actor ) )
            {
                pnlPersonajes.show();
                pnlCostos.hide();
                pnlComentarios.hide();
                pnlImportacion.hide();
            }

            if (obtenerEstadoActual() == _EstadosGuion.FINALIZADO.Id)
            {
                habilitarControles(false);
            }
        }
        function habilitarControles(habilitar)
        {
            habilitarControles_General(habilitar);
            habilitarControles_Guion(habilitar);
            habilitarControles_Items(habilitar);
            habilitarControles_Costos(habilitar);
            habilitarControles_Importacion(habilitar);
            habilitarControles_Autorizaciones(habilitar);
        }
        function habilitarControles_General(habilitar)
        {
            ForEach(controles.General, habilitarControl, [habilitar], "#");

            enableButton(controles.General.btnGuardar, habilitar, guardarGuion);
            enableButton(controles.General.btnEliminar, habilitar, eliminarDatos);
        }
        function habilitarControles_Guion(habilitar)
        {
            ForEach(controles.Guion, habilitarControl, [habilitar], "#");            
        }
        function habilitarControles_Items(habilitar)
        {
            var filas = obtenerFilasPersonajes();
            for (var i = 0; i < filas.length; i++)
            {
                var id = obtenerIdFilaPersonaje(filas, i);
                ForEach(controles.Items.Columnas, habilitarControl, [habilitar], "#", id);
                enableButton(controles.Items.Columnas.btnEliminar + i, habilitar, eliminarFilaPersonaje, i);
                marcarPersonajeSubtitulado(id);
            }
            enableButton(controles.Items.btnAgregarPersonaje, habilitar, crearFilaPersonaje, Constants.Entities.DefaultId);
        }
        function habilitarControles_Costos(habilitar)
        {
            ForEach(controles.Costos, habilitarControl, [habilitar], "#");
            enableButton(controles.General.btnActualizarCostoMaestro, habilitar, actualizarCostoMaestro);
        }
        function habilitarControles_Importacion(habilitar)
        {
            ForEach(controles.Importacion, habilitarControl, [habilitar], "#");          
            //enableButton(controles.Importacion.btnDescargar, habilitar, null);
        }
        function habilitarControles_Autorizaciones(habilitar) 
        {
            //var filas = obtenerFilasAutorizaciones();
            //for (var i = 0; i < filas.length; i++)
            //{
            //    var id = obtenerIdFilaAutorizacion(filas, i);

            //    var fila = $(filas[i]); // <=> obtenerFilaAutorizaciones(id);
            //    var idTransicionAutorizacion = fila.attr("idTransicionAutorizacion");

            //    //ForEach(controles.Items.Columnas, habilitarControl, [habilitar], "#", id);
            //    enableButton(controles.Autorizaciones.Columnas.btnResolver + i, habilitar, resolverAutorizacion, idTransicionAutorizacion);
            //}
        }
        function obtenerFilasPersonajes()
        {
            return $("#" + controles.Items.Tabla.Id).find("tbody>tr");
        }
        function obtenerFilasAutorizaciones()
        {
            return $("#" + controles.Autorizaciones.Tabla.Id).find("tbody>tr");
        }
        function obtenerFilaAutorizaciones(idFila)
        {
            return $("#" + controles.Autorizaciones.Tabla.Id).find("tr#" + controles.Autorizaciones.Fila.Id + idFila);            
        }
        function actualizarCantidadPersonajes(actualizacion)
        {
            if ( actualizacion == 0 )
                _cantRegistrosPersonajes = 0;
            else
                _cantRegistrosPersonajes = _cantRegistrosPersonajes + actualizacion;

            $("#" + controles.Guion.Personajes).val(_cantRegistrosPersonajes);
        }
        function actualizarCantidadLoops(valor)
        {
            if (valor == null) {
                _cantLoopsPersonajes = 0;
                var filas = obtenerFilasPersonajes();
                for (var i = 0; i < filas.length; i++)
                {
                    var id = obtenerIdFilaPersonaje(filas, i);
                    var loop = parseInt($("#" + controles.Items.Columnas.Loops + id).val());
                    if (!isNaN(loop))
                        _cantLoopsPersonajes += loop;
                }
            } else {
                _cantLoopsPersonajes = valor;
            }
            $("#" + controles.Guion.Loops).val(_cantLoopsPersonajes);
        }
        function obtenerIdFilaPersonaje(filas, i)
        {
            return filas[i].id.replace(controles.Items.Fila.Id, "");
        }
        function obtenerIdFilaAutorizacion(filas, i)
        {
            return filas[i].id.replace(controles.Autorizaciones.Fila.Id, "");
        }
        function eliminarFilaPersonaje(id)
        {
            id = parseIdFromClickEvent(id);

            $("#" + controles.Items.Fila.Id + id).remove();
            actualizarCantidadPersonajes(-1);
            actualizarCantidadLoops();
            mostrarNotificacion(_notifications.info, "Se eliminó un Personaje", false);
        }
        function eliminarFilasPersonajes()
        {
            _cantRegistrosPersonajesCreados = 0;
            actualizarCantidadPersonajes(0);
            actualizarCantidadLoops(0);
            $("#" + controles.Items.Tabla.Id + " > tbody").html("");
        }
        function crearFilaPersonaje(idGuionItem)
        {
            var idTipoProyecto = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.TipoProyecto);
            var tdSubtituladoDisplay = idTipoProyecto == _TiposProyecto.SERIE.Id ? "table-cell" : "none";

            var idFila = idGuionItem.data != null ? idGuionItem.data : idGuionItem;
            var id = _cantRegistrosPersonajesCreados -1;
            var fila = '';
            fila += '<td align="center"><div id="' + controles.Items.Columnas.btnEliminar + id + '" class="botonAccion btnGuion_Item_Eliminar" style="width:70px;" ><img src="Images/16x16/remover.png" alt="Eliminar Personaje" /><label>Eliminar</label></div></td>';
            fila += '<td align="center" style="display:' + tdSubtituladoDisplay + '" ><input id="' + controles.Items.Columnas.Subtitulado + id + '" type="checkbox" value="" /></td>';
            fila += '<td><input id="' + controles.Items.Columnas.Personaje + id + '" type="text" value="" class="txtValor" /></td>';
            fila += '<td align="center"><select id="' + controles.Items.Columnas.Actor + id + '" multiple="multiple" ></select></td>';
            fila += '<td><input id="' + controles.Items.Columnas.FechaGrabacion + id + '" type="text" value="" class="txtValor Fecha" /></td>';
            fila += '<td><input id="' + controles.Items.Columnas.Loops + id + '" type="text" value="" class="txtValor" /></td>';
            fila += '<td align="center"><select id="' + controles.Items.Columnas.TipoCancion + id + '" multiple="multiple" ></select></td>';
            fila  = '<tr id="' + controles.Items.Fila.Id + id + '" ' + controles.Items.Fila.IdGuionItem + '="' + idFila + '" class="filaPersonaje" >' + fila + '</tr>';

            $("#" + controles.Items.Tabla.Id).append(fila);

            activarFilaPersonaje(id);

            if (idFila == Constants.Entities.DefaultId)
            {
                mostrarNotificacion(_notifications.info, "Se agregó un nuevo Personaje", false);
                Framework.Effects.scrollTo($("#" + controles.Items.Fila.Id + "{0}".format(id)), null, 1000);
            }

            _cantRegistrosPersonajesCreados++;
        }
        function activarFilaPersonaje(id)
        {
            actualizarCantidadPersonajes(1);
            Helpers.SelectListHelper.copyItems(controles.General.UsuarioActor, "{0}{1}".format(controles.Items.Columnas.Actor, id));
            Helpers.SelectListHelper.copyItems(controles.General.TipoCancion, "{0}{1}".format(controles.Items.Columnas.TipoCancion, id));
            activarControlesFilaPersonaje(id);
        }
        function habilitarFilaPersonaje(idFila, habilitar)
        {
            var columnas = getObjectValues( controles.Items.Columnas );
            columnas = removeElementFromArray( columnas, controles.Items.Columnas.Subtitulado );
            var filas = $("#" + controles.Items.Fila.Id + idFila);
            for (var i = 0; i < filas.length; i++)
            {
                var id = obtenerIdFilaPersonaje(filas, i);
                ForEach(columnas, habilitarControl, [habilitar], "#", id);
                $("#" + controles.Items.Columnas.FechaGrabacion + idFila).datepicker( habilitar ? null : "destroy" );
            }
        }
        function activarControlesFilaPersonaje(idFila)
        {
            //$("#" + controles.Items.Columnas.btnEliminar + idFila).click(function () { eliminarFilaPersonaje(idFila); });
            enableButton(controles.Items.Columnas.btnEliminar + idFila, true, eliminarFilaPersonaje, idFila);
            $("#" + controles.Items.Columnas.Subtitulado + idFila).change(function()
            {
                var idFila    = this.id.replace(controles.Items.Columnas.Subtitulado, "");
                var habilitar = !this.checked;
                habilitarFilaPersonaje( idFila, habilitar );
            });
            Helpers.MultiSelectHelper.configure("#" + controles.Items.Columnas.Actor + idFila + ", #" + controles.Items.Columnas.TipoCancion + idFila, false, true);
            $("#" + controles.Items.Columnas.FechaGrabacion + idFila).datepicker();
            $("#" + controles.Items.Columnas.Loops + idFila).blur(function() {
                actualizarCantidadLoops();
            });
            allowOnlyNumbers( $("#" + controles.Items.Columnas.Loops + idFila) );
        }
        function onProyecto_Change(seleccionado, valor, texto)
        {
            //if (seleccionado  && $("#" + controles.Guion.Titulo).val().length == 0)
            //{
            $("#" + controles.Guion.Titulo).val(texto);
            //}
        }
        function habilitarGuion() {
            activarEntidad("Guion", _idGuion, reloadPage);
        }
        function limpiarDatosGuion()
        {
            $("#" + controles.Guion.Titulo).val("");
            $("#" + controles.Guion.Episodio).val("");
            eliminarFilasPersonajes();
        }
        function onTipoProyecto_Change(seleccionado, valor, texto)
        {
            cambiarConfiguracionSegunTipoProyecto(valor);
        }
        function cambiarConfiguracionSegunTipoProyecto(idTipoProyecto)
        {
            limpiarDatosGuion();
            configurarPagina_SegunTipoProyecto( idTipoProyecto );
            obtenerCostos( idTipoProyecto );
            obtenerProyectos( idTipoProyecto );            
        }
        function obtenerProyectos(idTipoProyecto)
        {
            var parametros = { idTipoProyecto : idTipoProyecto }
            var jsonParams = JSON.stringify(parametros);
            Site.Messages.showLoadingMessage();

            Helpers.AJAXHelper.invoke("obtenerProyectos", jsonParams, obtenerProyectos_Response);
        }
        function obtenerProyectos_Response(datos)
        {
            Site.Messages.hideLoadingMessage();
            var respuestaInfo = jQuery.parseJSON(datos.d);
            if (respuestaInfo.Resultado)
            {
                var proyectosInfo = respuestaInfo.Valor;
                var options = Helpers.SelectListHelper.formatForSelectList(proyectosInfo, "Id", "Texto");
                Helpers.SelectListHelper.fillSelectList(controles.Guion.Proyecto, options, null, true);
                Helpers.MultiSelectHelper.configure("#" + controles.Guion.Proyecto, false);
                Helpers.MultiSelectHelper.setWidth("#" + controles.Guion.Proyecto, 340);
                Helpers.MultiSelectHelper.bindOnChange("#" + controles.Guion.Proyecto, onProyecto_Change);
            }
            else
            {
                mostrarNotificacion(_notifications.error, respuestaInfo.Mensaje, true);
            }
        }
        function obtenerCostos(idTipoProyecto)
        {
            var parametros = { idTipoProyecto : idTipoProyecto }
            var jsonParams = JSON.stringify(parametros);
            Site.Messages.showLoadingMessage();
            Helpers.AJAXHelper.invoke("obtenerCostoMaestro", jsonParams, obtenerCostos_Response);          
        }
        function obtenerCostos_Response(datos)
        {
            Site.Messages.hideLoadingMessage();
            var respuestaInfo = jQuery.parseJSON(datos.d);
            if (respuestaInfo.Resultado)
            {
                var costosInfo = respuestaInfo.Valor;
                $("#" + controles.Costos.Loops).val( Helpers.NumericHelper.Formatting.format(costosInfo.Loops));
                $("#" + controles.Costos.Direccion).val( Helpers.NumericHelper.Formatting.format(costosInfo.Direccion));
                $("#" + controles.Costos.LoopMinimo).val( Helpers.NumericHelper.Formatting.format(costosInfo.LoopMinimo));
                $("#" + controles.Costos.Traduccion).val( Helpers.NumericHelper.Formatting.format(costosInfo.Traduccion));
                $("#" + controles.Costos.Cancion).val( Helpers.NumericHelper.Formatting.format(costosInfo.Cancion));
                $("#" + controles.Costos.Adaptacion).val( Helpers.NumericHelper.Formatting.format(costosInfo.Adaptacion));
                $("#" + controles.Costos.Coro).val( Helpers.NumericHelper.Formatting.format(costosInfo.Coro)); 
                $("#" + controles.Costos.Mezcla).val( Helpers.NumericHelper.Formatting.format(costosInfo.Mezcla));
                $("#" + controles.Costos.Temporizacion).val( Helpers.NumericHelper.Formatting.format(costosInfo.Temporizacion));
                $("#" + controles.Costos.Palabras).val( Helpers.NumericHelper.Formatting.format(costosInfo.Palabras));     
            }
            else
            {
                mostrarNotificacion(_notifications.error, respuestaInfo.Mensaje, true);
            }
        }
    </script>

    <!-- CRUD -->
    <script type="text/javascript" >
        function obtenerObjetosGuion()
        {
            debugger;
            var objetoGuion = new Object();
                objetoGuion.infoGuion               = obtenerObjetoGuion();
                objetoGuion.infoGuionItems          = obtenerObjetoGuionItems();
                objetoGuion.infoGuionCosto          = obtenerObjetoGuionCosto();
                objetoGuion.infoGuionAutorizaciones = obtenerObjetoGuionAutorizaciones();
            return objetoGuion;
        }
        function obtenerObjetoGuion()
        {
            var guion                   = new Object();
                guion.Id                = _idGuion;
                guion.Duracion          = $("#" + controles.Guion.Duracion).val();
                guion.IdDirector        = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Director);
                guion.IdAdaptador       = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Adaptador);
                guion.IdEstado          = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Estado);
                guion.IdTipoProyecto    = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.TipoProyecto);
                guion.IdProyecto        = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Proyecto);
                guion.IdMezclador       = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Mezclador);
                guion.IdTraductor       = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Traductor);
                guion.IdTemporizador    = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Temporizador);
                guion.Loops             = $("#" + controles.Guion.Loops).val();
                guion.Paginas           = $("#" + controles.Guion.Paginas).val();
                guion.Personajes        = $("#" + controles.Guion.Personajes).val();
                guion.Titulo            = $("#" + controles.Guion.Titulo).val();
                guion.Episodio          = $("#" + controles.Guion.Episodio).val();
                guion.Comentarios       = $("#" + controles.Guion.Comentarios.Text).val();
            return guion;
        }
        function obtenerObjetoGuionItems()
        {
            var guionItems = [];
            var filas = obtenerFilasPersonajes();
            for(var i=0; i < filas.length; i++)
            {
                var id = obtenerIdFilaPersonaje(filas, i);
                var idGuionItem = $("#" + controles.Items.Fila.Id + id).attr(controles.Items.Fila.IdGuionItem);

                var item                = new Object();
                item.Id             = idGuionItem;
                item.IdGuion        = _idGuion;
                item.Subtitulado    = $("#" + controles.Items.Columnas.Subtitulado + id).prop('checked');
                item.Personaje      = $("#" + controles.Items.Columnas.Personaje + id).val();
                item.IdActor        = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Items.Columnas.Actor + id);
                item.FechaGrabacion = $("#" + controles.Items.Columnas.FechaGrabacion + id).datepicker("getDate");
                item.Loops          = $("#" + controles.Items.Columnas.Loops + id).val().length > 0 ? $("#" + controles.Items.Columnas.Loops + id).val() : 0;
                item.IdTipoCancion = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Items.Columnas.TipoCancion + id);

                guionItems[i] = item;
            }
            return guionItems;
        }
        function obtenerObjetoGuionCosto()
        {
            var costo                   = new Object();
                costo.IdTipoProyecto    = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.TipoProyecto);
                costo.Loops             = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Loops).val());
                costo.LoopMinimo        = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.LoopMinimo).val());
                costo.Cancion           = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Cancion).val());
                costo.Palabras          = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Palabras).val());
                costo.Direccion         = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Direccion).val());
                costo.Traduccion        = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Traduccion).val());
                costo.Adaptacion        = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Adaptacion).val());
                costo.Mezcla            = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Mezcla).val());
                costo.Temporizacion     = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Temporizacion).val());
                costo.Coro              = Helpers.NumericHelper.Conversion.toNumber($("#" + controles.Costos.Coro).val());
            return costo;
        }
        function obtenerObjetoGuionAutorizaciones() {
            var autorizaciones = new Array();

            var filas = obtenerFilasAutorizaciones();
            for (var i = 0; i < filas.length; i++)
            {
                //var id = obtenerIdFilaAutorizacion(filas, i);
                var fila = $(filas[i]); // <=> obtenerFilaAutorizaciones(id);
                var idTransicionAutorizacion = fila.attr("idTransicionAutorizacion");

                var cols = fila.find("td");
                var tipo = $(cols[0]).text();
                var estado = $(cols[1]).find("a"); // Si es un <a> entonces ya fue resuelta ( "APROBADA" / "RECHAZADA" ). Si no, está "PENDIENTE"
                estado = estado.length > 0 ? estado.text() : "PENDIENTE";
                var solicication = $(cols[2]).text();
                var resolucion = $(cols[3]).text();

                autorizaciones.push(
                {
                    idTransicionAutorizacion: idTransicionAutorizacion,
                    tipo: tipo.trim(),
                    estado: estado.trim(),
                    solicication: solicication.trim(),
                    resolucion: resolucion.trim()
                } );
            }

            return autorizaciones;
        }
        function finalizarGuion()
        {            
            var objetoGuion = obtenerObjetosGuion();
            objetoGuion.infoGuion.IdEstado = _EstadosGuion.FINALIZADO.Id;

            /*
            if ( isEmpty(objetoGuion.infoGuion.Comentarios) )
            {
                var errores = [];
                mostrarNotificacion( _notifications.warning, "Debe ingresar algún Comentario.", false);
                registrarError( $("#txtGuion_Comentarios"), errores );
                return;
            }
            */

            var pnlErrorMessage = $("#" + controles.General.MensajeError);
            if (!validarGuardarDatos(objetoGuion.infoGuion, objetoGuion.infoGuionItems, objetoGuion.infoGuionCosto))
            {
                pnlErrorMessage.fadeIn();
                return;
            }
            else
            {
                pnlErrorMessage.fadeOut();
            }

            var guardarDatosConGuionFinalizado = overloadFunction(guardarDatos, objetoGuion);
            mostrarAlerta("¿Está seguro que desea cambiar el estado del Guión a " + _EstadosGuion.FINALIZADO.Nombre + "?", guardarDatosConGuionFinalizado);
        }
        function guardarGuion()
        {
            var objetoGuion = obtenerObjetosGuion();
            _idProyecto = Helpers.MultiSelectHelper.getFirstSelectedValue(controles.Guion.Proyecto);
            guardarDatos( objetoGuion );
        }
        function guardarDatos(objetoGuion)
        {
            var pnlErrorMessage = $("#" + controles.General.MensajeError);
            if (!validarGuardarDatos(objetoGuion.infoGuion, objetoGuion.infoGuionItems, objetoGuion.infoGuionCosto))
            {
                pnlErrorMessage.fadeIn();
                return;
            }
            else
            {
                pnlErrorMessage.fadeOut();
            }

            enableButton(controles.General.btnGuardar, false, guardarGuion);

            Site.Messages.showLoadingMessage();
            Helpers.AJAXHelper.invoke("guardarGuion", "{'infoGuion':'" + JSON.stringify(objetoGuion.infoGuion).replace(/'/g, "\\'") + "', 'infoGuionItems': '" + JSON.stringify(objetoGuion.infoGuionItems).replace(/'/g, "\\'") + "', 'infoGuionCosto':'" + JSON.stringify(objetoGuion.infoGuionCosto) + "'}", guardarDatos_Respuesta, null, null );
        }
        function guardarDatos_Respuesta(datos)
        {
            enableButton(controles.General.btnGuardar, true, guardarGuion);

            Site.Messages.hideLoadingMessage();

            var tipoNotificacion = null;
            var forzarCierre = false;
            var fnReturn = null;

            var respuesta = jQuery.parseJSON(datos.d);
            if ( respuesta.Resultado )
            {
                tipoNotificacion = _notifications.success;
                forzarCierre = false;
                //fnReturn = goBack;
                fnReturn = verProyectos;
            }
            else
            {
                tipoNotificacion = _notifications.error;
                forzarCierre = true;
            }

            mostrarNotificacion(tipoNotificacion, respuesta.Mensaje, forzarCierre, fnReturn);
        }
        function eliminarDatos()
        {
            var fnMostrarMensajeContenidoBloqueado = overloadFunction(mostrarMensajeContenidoBloqueado, habilitarGuion);

            debugger;
            eliminarGuion(_idGuion, fnMostrarMensajeContenidoBloqueado);
        }
        function validarGuardarDatos(guion, items, costo)
        {
            var errores = [];
            
            validarDatosGuion(guion, errores);
            validarDatosGuionItems(items, errores);
            validarDatosGuionCosto(costo, errores);

            if ( errores.length > 0 )
                return false;
            else
                return true;
        }
        function validarDatosGuion(guion, errores)
        {
            var estados = [ _EstadosGuion.EN_GRABACION.Id, _EstadosGuion.FINALIZADO.Id ];

            if (guion.IdTipoProyecto == Constants.Entities.DefaultId)
                registrarError($("#" + controles.Guion.TipoProyecto).next(), errores);
            if (guion.IdProyecto == Constants.Entities.DefaultId)
                registrarError($("#" + controles.Guion.Proyecto).next(), errores);
            if ( guion.IdEstado == Constants.Entities.DefaultId )
                registrarError($("#" + controles.Guion.Estado).next(), errores);

            if ( validarPermisosAdmin(_CurrentUser.Tipo) )
            {
                /* Validación General */
                if ( isEmpty(guion.Titulo) )
                    registrarError($("#" + controles.Guion.Titulo), errores);
                if ( isEmpty(guion.Episodio) )
                    registrarError($("#" + controles.Guion.Episodio), errores);
                if ( isEmpty(guion.Duracion) )
                    registrarError($("#" + controles.Guion.Duracion), errores);
                if ( isEmpty(guion.Paginas) )
                    registrarError($("#" + controles.Guion.Paginas), errores);
                if ( isEmpty(guion.Loops) )
                    registrarError($("#" + controles.Guion.Loops), errores);
                if ( isEmpty(guion.Personajes) )
                    registrarError($("#" + controles.Guion.Personajes), errores);

                /* Validación - Estado = <SIN ESTADO> */
                if (guion.IdEstado == Constants.Entities.DefaultId)
                {
                }

                /* Validación - Estado = GENERADO */
                if (guion.IdEstado == _EstadosGuion.GENERADO.Id)
                {
                    //Dejar guardar lo que sea..
                }

                /* Validación - Estado = EN GRABACION, FINALIZADO */
                if ( isIn(guion.IdEstado, estados) )
                {
                    if ( guion.IdDirector == Constants.Entities.DefaultId )
                        registrarError( $("#" + controles.Guion.Director).next(), errores );
                    if ( guion.IdTraductor == Constants.Entities.DefaultId )
                        registrarError( $("#" + controles.Guion.Traductor).next(), errores );
                    if ( guion.IdAdaptador == Constants.Entities.DefaultId )
                        registrarError( $("#" + controles.Guion.Adaptador).next(), errores );
                    if ( guion.IdMezclador == Constants.Entities.DefaultId )
                        registrarError( $("#" + controles.Guion.Mezclador).next(), errores );
                    
                    if (guion.IdTemporizador == Constants.Entities.DefaultId)
                    {
                        var subtitulados = $("#" + controles.Items.Tabla.Id + " input[type='checkbox']:checked");
                        if (subtitulados.length)
                            registrarError( $("#" + controles.Guion.Temporizador).next(), errores );
                    }
                }
            }

            /*
            if ( isEmpty(guion.Loops) )
                registrarError( $("#txtGuion_Loops"), errores );
            if ( isEmpty(guion.Personajes) )
                registrarError( $("#txtGuion_Personajes"), errores );
            */
        }
        function validarDatosGuionItems(items, errores)
        {
            var tipoUsuario = _CurrentUser.Tipo;

            for(var i=0; i < items.length; i++)
            {
                var item = items[i];

                if (item.Subtitulado)
                    continue;

                if ( validarPermisosAdmin(_CurrentUser.Tipo) )
                {
                    if ( isEmpty(item.Personaje) )
                        registrarError($("#" + controles.Items.Columnas.Personaje + i), errores);
                    if ( isEmpty(item.Loops) )
                        registrarError($("#" + controles.Items.Columnas.Loops + i), errores);
                }
                if ( validarTipoUsuario(tipoUsuario, _TiposUsuario.Director) )
                {
//                    if ( item.IdActor == Constants.Entities.DefaultId )
                    //  registrarError( $("#" + controles.Items.Columnas.Actor + i).next(), errores );
//                    if ( isEmpty(item.FechaGrabacion) )
                    //  registrarError( $("#" + controles.Items.Columnas.FechaGrabacion + i), errores );

                    if ( isEmpty(item.Personaje) )
                        registrarError($("#" + controles.Items.Columnas.Personaje + i), errores);
                    if ( isEmpty(item.Loops) )
                        registrarError($("#" + controles.Items.Columnas.Loops + i), errores);

                    if ( ( item.IdActor != Constants.Entities.DefaultId ) && ( isEmpty(item.FechaGrabacion) ) )
                    {
                        registrarError($("#" + controles.Items.Columnas.Actor + i).next(), errores);
                        registrarError($("#" + controles.Items.Columnas.FechaGrabacion + i), errores);
                    }

                    /*
                    if ( item.IdTipoCancion == Constants.Entities.DefaultId )
                        registrarError( $("#" + controles.Items.Columnas.TipoCancion + i).next(), errores );
                    */
                }
                var guionEstadoId = Helpers.SelectListHelper.getSelectedValueFromSelectList(controles.Guion.Estado);
                if (guionEstadoId == _EstadosGuion.FINALIZADO.Id)
                {
                    if ( isEmpty(item.Personaje) )
                        registrarError($("#" + controles.Items.Columnas.Personaje + i), errores);
                    if ( item.IdActor == Constants.Entities.DefaultId )
                        registrarError($("#" + controles.Items.Columnas.Actor + i).next(), errores);
                    if ( isEmpty(item.FechaGrabacion) )
                        registrarError($("#" + controles.Items.Columnas.FechaGrabacion + i), errores);
                    if ( isEmpty(item.Loops) )
                        registrarError($("#" + controles.Items.Columnas.Loops + i), errores);
                    //if ( item.IdTipoCancion == Constants.Entities.DefaultId )
                    //    registrarError($("#" + controles.Items.Columnas.TipoCancion + i), errores);
                }
            }
        }
        function validarDatosGuionCosto(costo, errores)
        {
            if ( validarPermisosAdmin(_CurrentUser.Tipo) )
            {
                if ( costo.Loops < 0 )
                    registrarError($("#" + controles.Costos.Loops), errores);
                if ( costo.LoopMinimo < 0 )
                    registrarError($("#" + controles.Costos.LoopMinimo), errores);
                if ( costo.Cancion < 0 )
                    registrarError($("#" + controles.Costos.Cancion), errores);
                if ( costo.Palabras < 0 )
                    registrarError($("#" + controles.Costos.Palabras), errores);
                if ( costo.Direccion < 0 )
                    registrarError($("#" + controles.Costos.Direccion), errores);
                if ( costo.Traduccion < 0 )
                    registrarError($("#" + controles.Costos.Traduccion), errores);
                if ( costo.Adaptacion < 0 )
                    registrarError($("#" + controles.Costos.Adaptacion), errores);
                if ( costo.Mezcla < 0 )
                    registrarError($("#" + controles.Costos.Mezcla), errores);
                if ( costo.Temporizacion < 0 )
                    registrarError($("#" + controles.Costos.Temporizacion), errores);
                if ( costo.Coro < 0 )
                    registrarError($("#" + controles.Costos.Coro), errores);
            }
        }
    </script>
    
    <!-- Actualizar Costo Maestro -->
    <script type="text/javascript" >
        function validarCostoMaestro(costoMaestro)
        {
            var errores = [];
            validarDatosGuionCosto(costoMaestro, errores);
            if ( errores.length > 0 )
                return false;
            else
                return true;
        }
        function actualizarCostoMaestro()
        {
            var costoMaestro = obtenerObjetoGuionCosto();
            if ( !validarCostoMaestro(costoMaestro) )
                return;

            mostrarAlerta("¿Está seguro que desea actualizar los valores del maestro de Costos?", confirmacionActualizarCostoMaestro);
        }
        function confirmacionActualizarCostoMaestro()
        {
            var costoMaestro = obtenerObjetoGuionCosto();
            Helpers.AJAXHelper.invoke("actualizarCostoMaestro", "{ 'infoCostoMaestro': '" + JSON.stringify(costoMaestro) + "'}", actualizarCostoMaestro_Respuesta, null);
        }
        function actualizarCostoMaestro_Respuesta(datos)
        {
            var tipoNotificacion = null;
            var forzarCierre = false;

            var respuesta = jQuery.parseJSON(datos.d);
            if ( respuesta.Resultado )
            {
                tipoNotificacion = _notifications.success;
                forzarCierre = false;
            }
            else
            {
                tipoNotificacion = _notifications.error;
                forzarCierre = true;
            }
            mostrarNotificacion(tipoNotificacion, respuesta.Mensaje, forzarCierre);
        }
    </script>
    <!-- Fin de [Actualizar Costo Maestro] -->
    
    <!-- PDF Viewer -->
    <script type="text/javascript" >
        function initializePdfViewer()
        {
            var pdfViewerOptions =
            {
                title:  "",
                width:  950,
                height: 650,
                close: onClosePdfViewer
            };
            Helpers.DialogHelper.initializeDialog(controles.Importacion.Dialog, pdfViewerOptions);            
        }
        function openPdfViewer(link, title)
        {
            var dialogId = controles.Importacion.Dialog;
            var uploadDirectory = $("#" + controles.Importacion.Directorio).val();
            var documentName    = link;
            var documentContent = '<div class="fullDimension" ><iframe src="' + uploadDirectory + "/" + documentName + '" class="fullDimension" ></iframe></div>';
            $("#" + dialogId).append(documentContent);
            Helpers.DialogHelper.setTitle(dialogId, title);
            Helpers.DialogHelper.openDialog(dialogId);
        }
        function onClosePdfViewer(event, ui)
        {
            $("#" + controles.Importacion.Dialog).empty();
        }
    </script>
    <!-- Fin de [PDF Viewer] -->
    

    <!-- Autorizaciones -->
    <script type="text/javascript" >
        function convertDataToGridModelData(data)
        {
            var users = new Array();
            //if (data != null)
            //{
            //    for (var i = 0; i < data.length; i++)
            //    {
            //        var user = data[i];
            //        users.push
            //        ({
            //            Id: user.Id,
            //            Activo: "1",
            //            Activar: "",
            //            Editar: "",
            //            Eliminar: "",
            //            IdTipo: user.IdTipo,
            //            Tipo: user.Tipo,
            //            Nombre: user.Nombre,
            //            Apellido: user.Apellido,
            //            IdCategoria: user.IdCategoria,
            //            Categoria: user.Categoria
            //        });
            //    }
            //}
            users.push
            ({
                Id: 1,
                Activo: "1",
                Activar: "",
                Editar: "",
                Eliminar: "",
                IdTipo: "1",
                Tipo: "Produccion",
                Nombre: "Juan",
                Apellido: "Perón",
                IdCategoria: "1",
                Categoria: "Freelance"
            });

            return users;
        }
        function grillaUsuarios_GetFilter()
        {
            var rules = [];

            var condicionActivo =
            {
                condition: "AND",
                set:
                [
                    { match: "OR", field: "Activo", op: "eq", data: 1 }

                ],
            };
            rules.push( condicionActivo );

            //var condicionTraductores = 
            //{
            //    condition: "AND",
            //    set:
            //    [
            //        { match: "AND", field: "Tipo.Id", op: "eq", data: _TiposUsuario.Traductor.Id }
            //    ]
            //};
            //rules.push( condicionTraductores );
          
            return rules;
        }
        function grillaUsuarios_OnSelectedRow(idGrid, rowId)
        {
            var title = "Usuario notificado: <b>NINGUNO</b>";

            var selectedRowIds = Helpers.jqGridHelper.getSelectedRowIds(idGrid, true);
            if (selectedRowIds.length > 0) {
                var firstName = Helpers.jqGridHelper.getGridRowCellValue(idGrid, rowId, 'Nombre');
                var lastName = Helpers.jqGridHelper.getGridRowCellValue(idGrid, rowId, 'Apellido');
                title = "Usuario notificado: <b>" + lastName + ", " + firstName + "</b>";
            }

            Collapsible().SetTitle(controles.Autorizaciones.Dialogs.Resolucion.PanelUsuario, title);
        }
        function inicializarDialogAutorizacionResolucion()
        {
            var dialogOptions =
            {
                title:  controles.Autorizaciones.Dialogs.Resolucion.Title.toUpperCase(),
                width:  controles.Autorizaciones.Dialogs.Resolucion.Width,
                height: controles.Autorizaciones.Dialogs.Resolucion.Height
            };

            Helpers.DialogHelper.initializeDialog( controles.Autorizaciones.Dialogs.Resolucion.Id, dialogOptions );

            Helpers.MultiSelectHelper.configure("#" + controles.Autorizaciones.Dialogs.Resolucion.Estado, false);
            Helpers.MultiSelectHelper.setWidth("#" + controles.Autorizaciones.Dialogs.Resolucion.Estado, 200);
            
            Collapsible().Create(controles.Autorizaciones.Dialogs.Resolucion.PanelUsuario, "Usuario notificado: <b>NINGUNO</b>", clsCollapsibleSection, clsCollapsibleContent, true);

            $("#" + controles.Autorizaciones.Dialogs.Resolucion.btnResolver).click( function () { enviarResolucionAutorizacion(); } );
        }
        function inicializarDialogAutorizacionDetalle()
        {
            var dialogOptions =
            {
                title:  controles.Autorizaciones.Dialogs.Detalle.Title.toUpperCase(),
                width:  controles.Autorizaciones.Dialogs.Detalle.Width,
                height: controles.Autorizaciones.Dialogs.Detalle.Height
            };

            Helpers.DialogHelper.initializeDialog( controles.Autorizaciones.Dialogs.Detalle.Id, dialogOptions );
        }
        function abrirDialogAutorizacionResolucion(idTransicionAutorizacion, title)
        {
            limpiarDialogAutorizacionResolucion();

            //var gridModelData = convertDataToGridModelData(data);
            //UserGrid.LoadData(gridModelData);

            $("#" + controles.Autorizaciones.Dialogs.Resolucion.IdTransicion).val( idTransicionAutorizacion );

            Helpers.DialogHelper.setTitle( controles.Autorizaciones.Dialogs.Resolucion.Id, title );
            Helpers.DialogHelper.openDialog( controles.Autorizaciones.Dialogs.Resolucion.Id );
        }
        function abrirDialogAutorizacionDetalle(idTransicionAutorizacion, title)
        {
            limpiarDialogAutorizacionDetalle();

            var parametros = { idTransicionAutorizacion : idTransicionAutorizacion }
            var jsonParams = JSON.stringify(parametros);
            Site.Messages.showLoadingMessage();

            Helpers.AJAXHelper.invoke("obtenerTransicionAutorizacion", jsonParams, function(response)
            {
                Site.Messages.hideLoadingMessage();
                var respuestaInfo = jQuery.parseJSON(response.d);
                if (respuestaInfo.Resultado)
                {
                    var transicion = respuestaInfo.Valor;

                    $("#" + controles.Autorizaciones.Dialogs.Detalle.Estado).html( transicion.Aprobada ? "<span style='color:green'>APROBADA</span>" : "<span style='color:red'>RECHAZADA</span>" );
                    //$("#" + controles.Autorizaciones.Dialogs.Detalle.Inicio).text( transicion.UsuarioInicio + " - " + transicion.FechaInicio );
                    //$("#" + controles.Autorizaciones.Dialogs.Detalle.Fin).text( transicion.UsuarioFin + " - " + transicion.FechaFin  );
                    $("#" + controles.Autorizaciones.Dialogs.Detalle.Comentarios).val( transicion.Comentarios );

                    Helpers.DialogHelper.setTitle( controles.Autorizaciones.Dialogs.Detalle.Id, title + " - " + transicion.Autorizacion.Nombre );
                    Helpers.DialogHelper.openDialog( controles.Autorizaciones.Dialogs.Detalle.Id );
                }
            });
        }
        function cerrarDialogAutorizaciones(idDialog)
        {
            Helpers.DialogHelper.closeDialog( idDialog );
        }
        function limpiarDialogAutorizacionResolucion()
        {
            Helpers.MultiSelectHelper.clearSelection(controles.Autorizaciones.Dialogs.Resolucion.Estado);

            UserGrid.ClearSelection();
            Collapsible().Collapse(controles.Autorizaciones.Dialogs.Resolucion.PanelUsuario);
            Collapsible().SetTitle(controles.Autorizaciones.Dialogs.Resolucion.PanelUsuario, "Usuario notificado: <b>NINGUNO</b>");

            $("#" + controles.Autorizaciones.Dialogs.Resolucion.IdTransicion).val("");
            $("#" + controles.Autorizaciones.Dialogs.Resolucion.Comentarios).val("");
        }
        function limpiarDialogAutorizacionDetalle()
        {
            $("#" + controles.Autorizaciones.Dialogs.Detalle.Estado).val("");
            $("#" + controles.Autorizaciones.Dialogs.Detalle.Fecha).val("");
            $("#" + controles.Autorizaciones.Dialogs.Detalle.Usuario).val("");
            $("#" + controles.Autorizaciones.Dialogs.Detalle.Comentarios).val("");
        }
        function generarEnlaceDetalleTransicionAutorizacion(idFila, aprobada)
        {
            var content = "";

            var estadoAutorizacion = null;
            if (aprobada != null && aprobada.length > 0)
                estadoAutorizacion = aprobada.toBool();

            switch(estadoAutorizacion)
            {
            case true:
                content = "<a id='" + controles.Autorizaciones.Columnas.btnVerDetalle + idFila + "' class='link' style='color:green !important' >APROBADA</a>";
                break;
            case false:
                content = "<a id='" + controles.Autorizaciones.Columnas.btnVerDetalle + idFila + "' class='link' style='color:red !important' >RECHAZADA</a>";
                break;
            default:
                content = "<div id='" + controles.Autorizaciones.Columnas.btnResolver + idFila + "' class='botonAccion btnGuion_Autorizacion_Resolver' style='width:70px;' ><label>Resolver</label></div>";
                break;
            }

            return content;
        }
        function enlazarEventosAutorizaciones(idFila, idTransicionAutorizacion)
        {
            var btnVerDetalle = $("#" + controles.Autorizaciones.Columnas.btnVerDetalle + idFila);
            if (btnVerDetalle != null)
            {
                btnVerDetalle.click(function()
                {
                    verDetalleAutorizacion(idTransicionAutorizacion);
                });
            }

            var btnResolver = $("#" + controles.Autorizaciones.Columnas.btnResolver + idFila);
            if (btnResolver != null)
            {
                btnResolver.click(function()
                {
                    resolverAutorizacion(idTransicionAutorizacion);
                });
            }
        }
        function resolverAutorizacion(idTransicionAutorizacion)
        {
            abrirDialogAutorizacionResolucion( idTransicionAutorizacion, "Resolver Autorización Pendiente" );
        }
        function verDetalleAutorizacion(idTransicionAutorizacion)
        {
            abrirDialogAutorizacionDetalle( idTransicionAutorizacion, "Detalle Autorización" );
        }
        function enviarResolucionAutorizacion()
        {
            var errores = [];

            var idTransicionAutorizacion = $("#" + controles.Autorizaciones.Dialogs.Resolucion.IdTransicion).val();
            var comentarios = $("#" + controles.Autorizaciones.Dialogs.Resolucion.Comentarios).val();

            var idEstado = Helpers.SelectListHelper.getSelectedValueFromSelectList(controles.Autorizaciones.Dialogs.Resolucion.Estado);
            var currentRowId = Helpers.jqGridHelper.getCurrentRowId(UserGrid.Id);

            var autorizacion =
            {
                IdGuion: _idGuion,
                Id: idTransicionAutorizacion,
                Aprobada: idEstado,
                Comentarios: comentarios,
                IdUsuarioNotificado: currentRowId
                //Autorizacion: { Id: 1, Nombre: "", Descripcion: "", Orden: 1 },
                //IdUsuarioInicio: 1,
                //FechaInicio: null,
                //IdUsuarioFin: 1
                //FechaFin: null
            };

            validarDatosAutorizacion(autorizacion, errores);

            if (errores.length == 0)
            {
                autorizacion.Aprobada = autorizacion.Aprobada.toBool();
                enviarAutorizacion(autorizacion);
            }
        }
        function validarDatosAutorizacion(autorizacion, errores) {
            if ( autorizacion.Aprobada == null )
                registrarError($("#" + controles.Autorizaciones.Dialogs.Resolucion.Estado).next(), errores);

            if ( isEmpty(autorizacion.Comentarios) )
                registrarError($("#" + controles.Autorizaciones.Dialogs.Resolucion.Comentarios), errores);
        }
        function enviarAutorizacion(autorizacion)
        {
            cerrarDialogAutorizaciones( controles.Autorizaciones.Dialogs.Resolucion.Id );

            var parametros = { autorizacionTransicionInfo : autorizacion }
            var jsonParams = JSON.stringify(parametros);
            Site.Messages.showLoadingMessage();

            Helpers.AJAXHelper.invoke("resolverAutorizacion", jsonParams, resolverAutorizacion_Response);
        }
        function resolverAutorizacion_Response(datos)
        {
            Site.Messages.hideLoadingMessage();

            var forzarCierre = false;
            var tipoNotificacion = null;
            var mensaje = "";
            var fnReturn = null;

            var respuestaInfo = jQuery.parseJSON(datos.d);
            if (respuestaInfo.Resultado)
            {
                mensaje = respuestaInfo.Mensaje;
                tipoNotificacion = _notifications.success;
                forzarCierre = false;
                fnReturn = reloadPage;
            }
            else
            {
                mensaje = respuestaInfo.Mensaje;
                tipoNotificacion = _notifications.error;
                forzarCierre = true;
                fnReturn = null;
            }

            mostrarNotificacion(tipoNotificacion, mensaje, forzarCierre, fnReturn);
        }
    </script>
    <!-- Fin de Autorizaciones -->

    <!--HTML-->
    <div id="content" style="margin:0 auto; width:90%;" >        

        <div id="btnLiberar" style="display:none; cursor:pointer; float:left; position:absolute; left:25px; top:85px;">
            <span><img src="Images/16x16/candado.png" alt="Editar" /></span>
        </div>
        
<%--        <!-- ESTADOS -->
        <div class="progress-container">
            <ul class="progress-indicator">
                <li class="completed">
				    <a href="http://www.google.com">
					    <span class="bubble"></span>
					    <i class="fa fa-check-square"></i>
					    Generado
				    </a>
                </li>
                <li class="completed">
				    <a href="http://www.google.com">
					    <span class="bubble"></span>
					    <i class="fa fa-check-square"></i>
					    Traduccion
				    </a>
                </li>
                <li class="active">
				    <a href="http://www.google.com">
					    <span class="bubble"></span>
					    <i class="fa fa-play"></i>
					    Produccion
				    </a>
                </li>
                <li>
				    <a href="http://www.google.com">
					    <span class="bubble"></span>
					    <i class="fa fa-times"></i>
					    En Grabacion
				    </a>
                </li>
                <li>
				    <a href="http://www.google.com">
					    <span class="bubble"></span>
					    <i class="fa fa-times"></i>
					    Finalizado
				    </a>
                </li>
            </ul>
        </div>
        <!-- Fin de [ESTADOS] -->--%>

        <!-- BOTONERA -->
        <div style="margin-top:20px; margin-bottom:20px;" >
            
            <div id="pnlGuion_ErrorMessage" class="error" style="display:none; padding:5px" >
                <b>Atención:</b> Hay algunos errores en la página.
            </div>            

            <table width="100%" border="1" cellpadding="0" cellspacing="0" class="default" >
                <colgroup>
                    <col width="20%" />
                    <col width="36%" />
                    <col width="24%" />
                    <col width="20%" />
                </colgroup>
                <tr>
                    <td class="indent" >
                        <label>Tipo:</label>
                        <select id="selGuion_TipoProyecto" multiple="false" runat="server" ></select>
                    </td>
                    <td class="indent" >
                        <label>Proyecto:</label>
                        <select id="selGuion_Proyecto" multiple="true" runat="server" ></select>
                    </td>
                    <td class="indent" >
                        <label>Estado:</label>
                        <select id="selGuion_Estado" multiple="true" runat="server" ></select>
                    </td>
                    <td align="right" >
                        <div id="btnGuardar" class="boton" >
                            <img src="Images/16x16/guardar.png" alt="Guardar Personaje" />
                            <label>Guardar</label>
                        </div>
                        <div id="btnEliminar" class="boton" >
                            <img src="Images/16x16/eliminar.png" alt="Eliminar Personaje" />
                            <label>Eliminar</label>
                        </div>
                    </td>
                </tr>
            </table>
        </div>
        <!-- Fin de [BOTONERA] -->

        <!-- ENCABEZADO - GUION -->
        <div style="float:left; width:100%;" >
            <table border="1" width="100%" class="default" >
                <!--<caption></caption>-->
                <colgroup>
                    <col width="20%" />
                    <col width="36%" />
                    <col width="24%" />
                    <col width="20%" />
                </colgroup>
                <tr>
                    <td class="indent" >
                        Dirección
                    </td>
                    <td align="center" >
                        <select id="selGuion_Director" multiple="true" runat="server" ></select>
                    </td>
                    <td class="indent" >
                        Duración
                    </td>
                    <td>
                        <input id="txtGuion_Duracion" type="text" value="0" class="txtValor" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        Traducción
                    </td>
                    <td align="center" >
                        <select id="selGuion_Traductor" multiple="true" runat="server" ></select>
                    </td>
                    <td class="indent" >
                        Páginas
                    </td>
                    <td>
                        <input id="txtGuion_Paginas" type="text" value="0" class="txtValor" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        Adaptación
                    </td>
                    <td align="center" >
                        <select id="selGuion_Adaptador" multiple="true" runat="server"  ></select>
                    </td>
                    <td class="indent" >
                        Loops
                    </td>
                    <td>
                        <input id="txtGuion_Loops" type="text" value="0" class="txtValor" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        Mezcla
                    </td>
                    <td align="center" >
                        <select id="selGuion_Mezclador" multiple="true" runat="server" ></select>
                    </td>
                    <td class="indent" >
                        Personajes
                    </td>
                    <td>
                        <input id="txtGuion_Personajes" type="text" value="0" class="txtValor" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        Temporización
                    </td>                    
                    <td align="center" >
                        <select id="selGuion_Temporizador" multiple="true" runat="server" ></select>
                    </td>
                    <td colspan="2">
                        
                    </td>
                </tr>
            </table>
        </div>
        
        <!-- TITULO -->
        <div style="float:left; width:100%;" >
            <table border="0" cellpadding="0" cellspacing="0" width="100%" >
                <colgroup>
                    <col width="75%" />
                    <col width="25%" />
                </colgroup>
                <tr>
                    <td>
                        <input id="txtGuion_Titulo" class="txtGuion_Titulo txtValor" value="" runat="server" />
                    </td>
                    <td>
                        <input id="txtGuion_Episodio" class="txtGuion_Episodio txtValor" value="" runat="server" />
                    </td>
                </tr>
            </table>
        </div>

        <br />       
        
        <!-- PERSONAJES -->
        <div id="pnlPersonajes" style="display:none" >
            <table id="tblPersonajes" border="1" width="100%" class="default" style="width:99%" >
                <!--<caption></caption>-->
                <colgroup>
                    <col width="10%" /> <!-- ELIMINAR -->
                    <col width="5%" />  <!-- SUBTITULADO -->
                    <col width="28%" /> <!-- PERSONAJE -->
                    <col width="25%" /> <!-- ACTOR -->
                    <col width="10%" /> <!-- LLAMADO -->
                    <col width="10%" /> <!-- LOOPS -->
                    <col width="12%" /> <!-- CANCION -->
                </colgroup>
                <thead>
                    <tr>
                        <th>
                            <div id="btnAgregarPersonaje" class="botonAccion" style="width:70px;" >
                                <img src="Images/16x16/agregar.png" alt="Agregar Personaje" />
                                <label>Agregar</label>
                            </div>
                        </th>
                        <th>SUBT.</th>
                        <th>PERSONAJE</th>
                        <th>ACTOR</th>
                        <th>LLAMADO</th>
                        <th>LOOPS</th>
                        <th>CANCION</th>
                    </tr>
                </thead>
                <tbody>
                    <asp:Repeater ID="rptGuionItems" runat="server" OnItemDataBound="rptGuionItems_ItemDataBound" >
                        <ItemTemplate>
                            <tr id="filaPersonaje_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" idGuionItem="<%# DataBinder.Eval(Container, "DataItem.Id" ) %>" class="filaPersonaje" >
                                <td align="center" >
                                    <div id="btnGuion_Item_Eliminar_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" class="botonAccion btnGuion_Item_Eliminar" style="width:70px;" ><img src="Images/16x16/remover.png" alt="Eliminar Personaje" /><label>Eliminar</label></div>
                                </td>
                                <td align="center" >
                                    <input id="chkGuion_Item_Subtitulado_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" type="checkbox" value="<%# ((Entidades.GuionItem)Container.DataItem).Subtitulado %>" />
                                </td>
                                <td>
                                    <input id="txtGuion_Item_Nombre_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" type="text" value="<%# ((Entidades.GuionItem)Container.DataItem).Personaje %>" class="txtValor" />
                                </td>
                                <td>
                                    <select id="selGuion_Item_Actor_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" multiple="multiple" ></select>
                                    <input id="hdnGuion_Item_Actor_Id_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" type="hidden" value="<%# ((Entidades.GuionItem)Container.DataItem).Actor != null ? ((Entidades.GuionItem)Container.DataItem).Actor.Id : Common.WellKnownKeys.Entities.DEFAULT_ID %>" />
                                </td>
                                <td>
                                    <input id="txtGuion_Item_Llamado_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" type="text" value="<%# ((Entidades.GuionItem)Container.DataItem).FechaGrabacion.HasValue ? ((Entidades.GuionItem)Container.DataItem).FechaGrabacion.Value.ToShortDateString() : String.Empty %>" class="txtValor Fecha" />
                                </td>
                                <td>
                                    <input id="txtGuion_Item_Loops_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" type="text" value="<%# ((Entidades.GuionItem)Container.DataItem).Loops %>" class="txtValor" />
                                </td>
                                <td>
                                    <select id="selGuion_Item_TipoCancion_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" multiple="multiple" ></select>
                                    <input id="hdnGuion_Item_TipoCancion_Id_<%# DataBinder.Eval(Container, "ItemIndex", "") %>" type="hidden" value="<%# ((Entidades.GuionItem)Container.DataItem).TipoCancion != null ? ((Entidades.GuionItem)Container.DataItem).TipoCancion.Id : Common.WellKnownKeys.Entities.DEFAULT_ID %>" />
                                </td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>
                </tbody>
            </table>
        </div>

        <!-- COSTOS -->
        <div id="pnlCostos" >
            <table id="tblCostos" border="1" width="100%" class="default" style="width:450px;" >
                <!--<caption></caption>-->
                <colgroup>
                    <col width="30%" />
                    <col width="20%" /> 
                    <col width="30%" />
                    <col width="20%" /> 
                </colgroup>
                <thead>
                    <tr>
                        <th align="left" style="border-right-color: transparent" >
                            <div id="btnActualizarCostoMaestro" class="botonAccion" >
                                <img src="Images/16x16/costos.png" alt="Actualizar Costos" />
                                <label>Actualizar</label>
                            </div>
                        </th>
                        <th colspan="2" style="border-right-color: transparent" >
                            COSTOS - <span id="lblCostosTitulo" ></span>
                        </th>
                        <th></th>
                    </tr>
                </thead>
                <tr>
                    <td class="indent" >
                        LOOPS
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Loops" type="text" class="txtValor" runat="server"  />
                    </td>
                    <td class="indent" >
                        DIRECCION
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Direccion" type="text" class="txtValor" runat="server"  />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        LOOP MINIMO
                    </td>
                    <td>
                        <input id="txtGuion_Costos_LoopMinimo" type="text" class="txtValor" runat="server" />
                    </td>
                    <td class="indent" >
                        TRADUCCION
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Traduccion" type="text" class="txtValor" runat="server" />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        CANCION
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Cancion" type="text" class="txtValor" runat="server"  />
                    </td>
                    <td class="indent" >
                        ADAPTACION
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Adaptacion" type="text" class="txtValor" runat="server"  />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        CORO
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Coro" type="text" class="txtValor" runat="server"  />
                    </td>
                    <td class="indent" >
                        MEZCLA
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Mezcla" type="text" class="txtValor" runat="server"  />
                    </td>
                </tr>
                <tr>
                    <td class="indent" >
                        PALABRAS
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Palabras" type="text" class="txtValor" runat="server"  />
                    </td>
                    <td class="indent" >
                        TEMPORIZACIÓN
                    </td>
                    <td>
                        <input id="txtGuion_Costos_Temporizacion" type="text" class="txtValor" runat="server"  />
                    </td>
                </tr>
            </table>
        </div>

        <!-- COMENTARIOS ADICIONALES -->
        <div id="pnlComentarios" style="display:none" >
            <textarea id="txtGuion_Comentarios" class="txtValor" cols="1" rows="5" runat="server" ></textarea>
        </div>

        <!-- INFO IMPORTACIÓN -->
        <div id="pnlImportacion" style="display:none" >
            <div id="btnDescargarArchivos" class="botonAccion" style="display: none" >
                <img src="Images/16x16/attachment.png" alt="Descargar archivos" />
                <a id="lnkDescargarArchivos" href="\" target="_blank" runat="server" >Descargar&nbsp;</a> 
            </div>             
            <div id="dialogPdfViewer" style="display:none;" ></div>
            <input id="hdnGuion_Importacion_Directorio" type="hidden" runat="server" />
            <table id="tblImportacion" border="1" width="100%" class="default" style="width:99%" >
                <!--<caption></caption>-->
                <colgroup>
                    <col width="20%" />
                    <col width="20%" /> 
                    <col width="20%" />
                    <col width="20%" />
                    <col width="20%" />
                </colgroup>
                <thead>
                    <tr>
                        <th colspan="5" class="table-header-title" >
                            DATOS DE LA IMPORTACIÓN
                        </th>
                    </tr>                    
                    <tr>
                        <th rowspan="2">
                            Usuario
                        </th>
                        <th rowspan="2">
                            Fecha Y Hora
                        </th>
                        <th colspan="3">
                            Documentos                           
                        </th>
                    </tr>
                    <tr>
                        <th>
                            DOC
                        </th>
                        <th>
                            BRK
                        </th>
                        <th>
                            RAD
                        </th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td class="text-align-center" >
                            <span id="txtGuion_Importacion_Usuario" runat="server"></span>
                        </td>
                        <td class="text-align-center" >
                            <span id="txtGuion_Importacion_Fecha" runat="server"></span>
                        </td>
                        <td class="text-align-center" >
                            <%--<input id="txtGuion_Importacion_DOC" type="text" value="" class="txtValor left deshabilitado link" runat="server" readonly="readonly" />--%>
                            <asp:HyperLink ID="txtGuion_Importacion_DOC" runat="server" NavigateUrl="#" Text="" class="txtValor left link" style="border:0px solid transparent; padding:0px;" ></asp:HyperLink>
                        </td>
                        <td class="text-align-center" >
                            <input id="txtGuion_Importacion_BRK" type="text" value="" class="txtValor deshabilitado link" runat="server" readonly="readonly" />
                        </td>
                        <td class="text-align-center" >
                            <input id="txtGuion_Importacion_STR" type="text" value="" class="txtValor deshabilitado link" runat="server" readonly="readonly" />
                        </td>
                    </tr>
                </tbody>
            </table>
            <table id="tblAutorizaciones" border="1" width="100%" class="default" style="width:99%" >
                <!--<caption></caption>-->
                <colgroup>
                    <col width="20%" />
                    <col width="20%" /> 
                    <col width="40%" /> 
                    <col width="40%" /> 
                </colgroup>
                <thead>
                    <tr>
                        <th colspan="4" class="table-header-title" >
                            APROBACIONES DEL DOCUMENTO
                        </th>
                    </tr>
                    <tr>
                        <th>
                            Tipo
                        </th>
                        <th>
                            Estado
                        </th>
                        <th>
                            Solicitación
                        </th>
                        <th>
                            Resolución
                        </th>
                    </tr>
                </thead>
                <tbody>
                    <asp:Repeater ID="rptGuionAutorizaciones" runat="server" OnItemDataBound="rptGuionAutorizaciones_ItemDataBound" >
                        <ItemTemplate>
                            <tr id='transicionAutorizacion_<%# DataBinder.Eval(Container, "ItemIndex", "") %>' idTransicionAutorizacion="<%# DataBinder.Eval(Container, "DataItem.Id" ) %>" class="<%# ((Entidades.GuionAutorizacionTransicion)Container.DataItem).Aprobada.HasValue ? "" : "ui-state-highlight" %>" >
                                <td class="text-align-center" >
                                    <%# ((Entidades.GuionAutorizacionTransicion)Container.DataItem).Autorizacion.Nombre %>
                                </td>
                                <td class="text-align-center" >
                                    <script type="text/javascript">
                                        var idFila = '<%# DataBinder.Eval(Container, "ItemIndex", "") %>';
                                        var idTransicionAutorizacion = '<%# DataBinder.Eval(Container, "DataItem.Id" ) %>';
                                        var aprobada = '<%# ((Entidades.GuionAutorizacionTransicion)Container.DataItem).Aprobada %>';
                                        document.write( generarEnlaceDetalleTransicionAutorizacion( idFila, aprobada ) );
                                        enlazarEventosAutorizaciones( idFila, idTransicionAutorizacion );
                                    </script>
                                </td>
                                <td class="text-align-center" >
                                    <%# ((Entidades.GuionAutorizacionTransicion)Container.DataItem).UsuarioInicio.Descriptor %> - <%# ((Entidades.GuionAutorizacionTransicion)Container.DataItem).FechaInicio %>
                                </td>
                                <td class="text-align-center" >
                                    <%# ((Entidades.GuionAutorizacionTransicion)Container.DataItem).UsuarioFin != null ?
                                    ( ((Entidades.GuionAutorizacionTransicion)Container.DataItem).UsuarioFin.Descriptor  + " - " + ((Entidades.GuionAutorizacionTransicion)Container.DataItem).FechaFin )
                                    : "-"
                                    %>
                                </td>
                            </tr>
                        </ItemTemplate>
                    </asp:Repeater>

                </tbody>
            </table>
        </div>
        
        <!-- DIÁLOGO AUTORIZACIONES -->
        <div id="dialogAutorizaciones" style="display:none" >
            <input id="txtDialogAutorizaciones_IdTransicionAutorizacion" type="text" style="display:none" />
            <span><b>ESTADO:</b></span>&nbsp;
            <select id="selDialogAutorizaciones_Estado" multiple="false" runat="server" ></select>
            <br />
            <div id="pnlDialogAutorizaciones_Usuario" >
                <br />
                <uc1:UserGrid runat="server" ID="UserGrid" Url="obtenerUsuarios" LoadOnInitialization="true" Title="." ShowActionColumns="false" UseSimpleSearch="false" Filter="grillaUsuarios_GetFilter" OnSelectedRow="grillaUsuarios_OnSelectedRow" />
                <br />
            </div>
            <br /><br /><br /><br /><br />
            <span><b>COMENTARIOS:</b></span>&nbsp;
            <textarea id="txtDialogAutorizaciones_Comentarios" rows="5" cols="1" ></textarea>
            <br /><br />
            <div style="float:right" >
                <div id="btnDialogAutorizaciones_Resolver" class="botonAccion" >
                    <img src="Images/16x16/email.png" alt="Enviar" />
                    <label>Enviar resolución</label>
                </div>
            </div>
        </div>
        
        <!-- DIÁLOGO DETALLE AUTORIZACION -->
        <div id="dialogDetalleAutorizacion" style="display:none" >
            <span><b>ESTADO:</b></span>&nbsp;
            <label id="lblDialogDetalleAutorizacion_Estado"></label><br /><br />
            <!--
            <span><b>INICIO:</b></span>&nbsp;
            <label id="lblDialogDetalleAutorizacion_Inicio"></label><br /><br />
            <span><b>FIN:</b></span>&nbsp;
            <label id="lblDialogDetalleAutorizacion_Fin"></label><br /><br />
            -->
            <span><b>COMENTARIOS:</b></span>&nbsp;
            <textarea id="txtDialogDetalleAutorizacion_Comentarios" rows="5" cols="1" readonly="readonly" class="disabled" style="width:98%" ></textarea>
        </div>

        <div style="float:left; width:100%; margin-bottom:30px" ></div>
        
        <span style="display:none" >
            <select id="selGuion_UsuarioActor" multiple="true" runat="server" ></select>
            <select id="selGuion_TipoCancion" multiple="true" runat="server" ></select>
        </span>
        
        <div id="dialogTest"  >
	        <section id="cd-timeline" class="cd-container">
	            
		        <div class="cd-timeline-block">
			        <div class="cd-timeline-img gray">
				        <span>
				            <i class="fa fa-check fa-2x fa-2x" style="color:white"></i>
				        </span>
			        </div>
			        <div class="cd-timeline-content">
				        <h2>Generado</h2>
				        <p>Usuario: <a href="#" class="link" >Juan Pérez</a></p>
				        <!--<a href="#0" class="cd-read-more">Read more</a>-->
				        <span class="cd-date">14/01/2016</span>
			        </div>
		        </div>
                	            
		        <div class="cd-timeline-block">
			        <div class="cd-timeline-img yellow">
				        <span>
				            <i class="fa fa-check fa-2x fa-2x" style="color:white"></i>
				        </span>
			        </div>
			        <div class="cd-timeline-content">
				        <h2>Pend. Aprob. Traducción</h2>
                        <p>Usuario: <a href="#" class="link" >Juan Pérez</a></p>
                        <a href="#0" class="cd-read-more">Ver más</a>
                        <span class="cd-date">28/01/2016</span>
			        </div>
		        </div>
                
		        <div class="cd-timeline-block">
			        <div class="cd-timeline-img pink">
				        <span></span>
			        </div>
			        <div class="cd-timeline-content">
				        <h2>Pend. Aprob. Dirección</h2>
				        <p>Usuario: <a href="#" class="link" >Juan Pérez</a></p>                        
                        <a href="#0" class="cd-read-more">Ver más</a>
                        <span class="cd-date">28/01/2016</span>
			        </div>
		        </div>                
                
		        <div class="cd-timeline-block">
			        <div class="cd-timeline-img red">
				        <span>
				            <i class="fa fa-check fa-2x fa-2x" style="color:white"></i>
				        </span>
			        </div>
			        <div class="cd-timeline-content">
				        <h2>En grabación</h2>
				        <p>Usuario: <a href="#" class="link" >Juan Pérez</a></p>
				        <a href="#0" class="cd-read-more">Ver más</a>
				        <span class="cd-date">15/02/2015</span>
			        </div>
		        </div>

		        <div class="cd-timeline-block">
			        <div class="cd-timeline-img green">
				        <span>
				            <i class="fa fa-check fa-2x fa-2x" style="color:white"></i>
				        </span>
			        </div>
			        <div class="cd-timeline-content">
				        <h2>Finalizado</h2>
				        <p>Usuario: <a href="#" class="link" >Juan Pérez</a></p>
				        <!--<a href="#0" class="cd-read-more">Read more</a>-->
				        <span class="cd-date">03/03/2016</span>
			        </div>
		        </div>

	        </section>
        </div>        

    </div>

</asp:Content>